Quantify transports through the Faroe-Shetland Channel by source and destination

  • Lagrangian particle tracking in VIKING20X model

  • Pilot test case for June 2016

  • Particles tracked backwards for 2 years (for sources) and forward for 6 months (for destinations)

  • Advection only

  • Transport calculations based on the idea of particle track representing a streamtube with constant along-tube transport everywhere

The idea here is to use Lagrangian particle tracks to quantify model volume transports from the North Atlantic into the Arctic seas by source. This is partly motivated by an idea of Stuart's that 'all' the water heading north between Greenland-Iceland-Shetland goes through the Rockall Trough (with the northward transport west of the Rockall Bank circulating in the subpolar gyre).

I've started with the Iceland-Faroes Ridge (IFR) section. This is partly just because I have an 'emotional attachment' to the IFR having spent my first postdoc modelling it, and partly because I figured if Stuart is wrong, the transport across the IFR is likely where it will show up.

Obviously it is easier to quantify transports across sections from the model just by straight eulerian calculation, but even if this is done over the whole boundary of a closed volume it doesn't give you the pathways through the volume. A 3D streamfunction would be another possibility but that doesn't seem straightforward.

The basic idea is that each particle tracked represents a streamtube (I have no diffusion in the tracking). The volume transport along that streamtube is constant at any point along the length and determined by the transport where it crosses IFR. This we get by a simple calculation of cross-sectional area x velocity across the section.

Particles are positioned randomly in 2D along a section from Iceland to Faroes, then the same particles are tracked backwards for 2 years for sources and forwards for 6 months for destinations.

This is done using OceanParcels tracking software and Viking20x model fields on GEOMAR servers via python Jupyter notebooks. This notebook has the analysis of the tracks, the notebook running Parcels is separate. This is currently just testing the method, how many particles might be needed for robust results, most efficient initial particle distributions, etc.

The transport quantities are at the very end. 2000 particles across the section seems to give OK results but ideally might want more - s.d. in total transport across IFR of maybe 10-20% by selecting a different random 2000 particles. Also this is just a snapshot (though using monthly means). With a few (<10) different crossing times I've seen total transports between 2 and 7 Sv, so with 2000 particles sampling errors probably small compared to variability.

The results for 2016 shown here suggest that of the 6.5 Sv crossing IFR 0.6 Sv came through Rockall Trough, with most of the rest coming north west of Rockall Bank, and about 0.5 Sv where I haven't identified the source. My initial feeling from other years is that most of the variability is in the flow from W of Rockall Bank with always around 0.5 Sv through Rockall Trough.

I haven't looked at Faroe-Shetland Channel yet, so this is only part (and probably the smaller part) of the northward flow in NE Atlantic towards Arctic.

So, here we

  • load lagrangian trajectory data that has been written by OceanParcels from particle tracking in Viking20x model (currently using monthly mean fields for speed)
    • particles tracked from a section across IFR
    • random release points along section
    • tracked forward for 6 months to id destinations
    • tracked backwards for 2 years to id sources
  • plot sections
  • plot trajectories
  • subset trajectories based on source and destination
  • estimate transports

Transports associated with different pathways are estimated by assuming that each particle crossing IFR has an associated volume transport, which it maintains throughout its life, given by the velocity across the section * total cross-sectional area / number of particles So like a streamtube...

To do

  • calculate section area properly
  • explore sensitivity to particle numbers and random seed (i.e. do I have enough particles)
  • calculate true transport across section in model
  • not selecting ocean particles properly near bed - partial cells
  • fix time units on track plots

Load data

In [11]:
ds = xr.open_dataset(project_path / path_data_tracks / filename)
dsb = xr.open_dataset(project_path / path_data_tracks / filenameb)
ds_full = xr.concat([dsb,ds],dim='obs')

display(ds_full)
<xarray.Dataset>
Dimensions:     (obs: 917, traj: 2000)
Dimensions without coordinates: obs, traj
Data variables:
    trajectory  (traj, obs) float64 3.0 3.0 3.0 ... 7.14e+03 7.14e+03 7.14e+03
    time        (traj, obs) datetime64[ns] 2016-06-15T12:00:00 ... 2016-12-17T12:00:00
    lat         (traj, obs) float64 61.17 61.18 61.19 61.2 ... 64.25 64.34 64.42
    lon         (traj, obs) float64 -3.858 -3.798 -3.735 ... 5.359 5.28 5.181
    z           (traj, obs) float64 551.4 554.3 557.1 ... 369.0 363.4 354.3
    temp        (traj, obs) float32 1.3506522 1.3615055 ... 5.8584743 5.7568445
    uvel        (traj, obs) float32 -9.869915e-07 ... -1.2129784e-06
    vvel        (traj, obs) float32 -2.6944662e-08 ... 8.970269e-07
    wvel        (traj, obs) float32 -4.380481e-05 ... -0.00011414275
Attributes:
    feature_type:           trajectory
    Conventions:            CF-1.6/CF-1.7
    ncei_template_version:  NCEI_NetCDF_Trajectory_Template_v2.0
    parcels_version:        2.1.2
    parcels_mesh:           spherical

Release positions of the particles on section from Faroes to Shetland

In [13]:
plot_release()

Plot trajectories

In [17]:
plot_tracks(lon,lat,time,'all tracks')

Find subsets of trajectories passing through different areas, either upstream or downstream

This just tests whether particles were ever in an area, much easier than testing line crossings.

Plot tracks for some cases

Tracks reaching FSC from NW

In [20]:
plot_tracks(lon,lat,time,'trajectories from NW')
In [22]:
plot_tracks(lon,lat,time,'upstream trajectories from NW')
In [24]:
plot_tracks(lon,lat,time,'trajectories from NW, downstream')

Tracks reaching FSC from south

In [26]:
plot_tracks(lon,lat,time,'trajectories south to north through F-S Channel')

Tracks reaching FSC from south through Rockall Trough

In [28]:
plot_tracks(lon,lat,time,'trajectories from Rockall Trough and Scottish Shelf and south to north through F-S Channel')
In [30]:
plot_tracks(lon,lat,time,'trajectories from Rockall Trough and Scottish Shelf and to Norwegian Sea')
In [32]:
plot_tracks(lon,lat,time,'trajectories from Rockall Trough and Scottish Shelf and to North Sea')

Tracks reaching FSC from south from west of Rockall

In [34]:
plot_tracks(lon,lat,time,'trajectories from west of Rockall')

Others

In [36]:
plot_tracks(lon,lat,time,'trajectories from W Iceland and return S Iceland')
In [38]:
plot_tracks(lon,lat,time,'trajectories from Greenland Sea')

Plot IFF section coloured by source

In [39]:
plot_section_from_NW()
In [40]:
plot_section_not_from_NW()

Estimate transports through FSC

In [41]:
transports()
Total transport through F-S channel.....................  1.464   Sv
...from NW.............................................. -1.909   Sv
...excluding from NW....................................  3.373   Sv
.............of which............ from Rockall Trough...  2.977   Sv
.............of which............ from West of Rockall..  0.340   Sv